The present invention generally relates to a server and a method for communicating an event message from the server connected to at least one peripheral device and at least one client via a network, and more particularly to a method for the server to respond to events from the peripheral device or the client computer.
Networks commonly contain peripheral devices, such as a printer and/or a scanner connected to the network. This arrangement allows a number of client computers attached to the network to share the services of the network printer and/or the scanner. A multifunction peripheral (MFP) may combine the functions of these peripherals into a single peripheral. These MFPs may also be connected to a network peripheral server. Because the MFP does not know about the network since that information is localized to the server, the server must relay the messages sent by the MFP to the correct network host in an efficient, timely and reliable manner. Typical events might include a user initiating a scan by the peripheral or delivering a received fax. It is important for the server to be able to relay the message to the correct host.
One problem the server faces is that event messages must be relayed only to the intended host(s) and no others. After receiving an event message, the server needs a way to identify the intended host(s) and be able to send that particular event message to that host(s).
Another problem is that since network communications are inherently unreliable, the messages are not always received. The messages can get lost and not recovered.
Still another problem arises when the server services more than one peripheral, because a peripheral does not know about the existence of other peripherals connected to the same server, and cannot distinguish itself from other peripherals when it communicates with the server.
One prior method involved a frequent polling of the peripheral for event status by all the network hosts. However, in order to provide timely responses, the poll requests had to be sent frequently to check for an event that occurs infrequently. As a result of the frequent polling for an infrequent event, network bandwidth was inefficiently used, which resulted in other communication on the network taking longer. In other words, it slowed down the functioning of the network hosts.
Another method involved using the Simple Network Management Protocol (SNMP) trap protocol to send events, but this protocol did not provide any means for detecting and recovering lost messages. This created the problem of losing the event before the finished execution since the event messages were never received.
Still another method involved the server broadcasting events to all the hosts connected to the network. The method was inefficient since it required some of the hosts to receive events that did not apply to them. Furthermore, it was insecure and unreliable because network communications are inherently unreliable.
Accordingly, it is an object of the present invention to provide an improved method for a server to relay an event message only to the intended host(s) on a network.
It is a further object of the present invention to provide an improved method for achieving more reliable network communications of event messages.
Another object of the present invention is to provide an improved method for a server to achieving more efficient communications of event messages when servicing more than one peripheral device.
The present invention provides a server and a method for communicating an event message from the server connected to at least one peripheral device and at least one client via a network, and more particularly to a method for the server to respond to events from the peripheral device or the client computer. The server is entirely event driven.
In accordance with this invention, the server can send a message to any available peripheral, respond to an event message from a peripheral, respond to an acknowledgment message from a client and respond to an expired timeout.